import shutil
from pathlib import Path
import platform
from datetime import datetime
import time


def main():
    # 获取当前目录
    current_dir = Path.cwd()

    # 获取所有以tmp开头的文件夹
    tmp_dirs = [
        dir_path for dir_path in current_dir.glob("tmp*/")
        if dir_path.is_dir()
    ]

    # 根据系统获取文件夹创建时间
    def get_creation_time(path):
        if platform.system() == 'Windows':
            return path.stat().st_ctime  # Windows直接使用创建时间
        else:
            # Unix/Linux系统没有直接的创建时间，使用修改时间替代
            return path.stat().st_mtime

    # 按创建时间排序（最新的在前）
    tmp_dirs_sorted = sorted(tmp_dirs, key=get_creation_time, reverse=True)

    # 保留最新的10个，其余标记为待删除
    dirs_to_delete = tmp_dirs_sorted[10:]

    # 预览模式
    print("以下文件夹将被删除：")
    for dir_path in dirs_to_delete:
        # 格式化创建时间以便阅读
        creation_time = datetime.fromtimestamp(get_creation_time(dir_path))
        print(f"- {dir_path.name} (创建于: {creation_time})")
    for dir_path in dirs_to_delete:
        try:
            shutil.rmtree(dir_path)
            print(f"✔️ 已删除: {dir_path.name}")
        except Exception as e:
            print(f"❌ 错误: 无法删除 {dir_path.name} - {e}")


if __name__ == "__main__":
    # 每隔 60 秒执行一次
    while True:
        main()
        time.sleep(60)  # 等待 60 秒
